<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>对象方法测试</title>
</head>
<body>

    <script>
    let a = {b:1,c:2};
    console.log('a',a['b']);
    console.log('属性是否存在', 'b' in a);
    
    setTimeout(()=>{ delete a.b;console.log('a1',a);},1000)


    let a1 = {a:1};
    a1.b=2;
    console.log('a12',a1);
    
    let b1={
        a: 2,
        'a':1,
        b:2,
        c:3,
    }
    console.log('b1',b1);
    let b2={
        'a':1,
        b:2,
        c:4,
        d:5
    }
   

    //Object.keys(obj)：返回对象自身可枚举属性的键数组。例如，
    const keys = Object.keys({a: 1, b: 2}); 
    const keys1 = Object.keys(b1)
    console.log('keys1',keys1);
    //Object.values(obj)：返回对象自身可枚举属性的值数组。例如，
    const values = Object.values({a: 1, b: 2});  //会返回 [1, 2]。
    //Object.entries(obj)：返回对象自身可枚举属性的键值对数组。例如，
    const entries = Object.entries({a: 1, b: 2}); //会返回 [['a', 1], ['b', 2]]。

    //检查对象是否自身是否具有某属性
    const isTrue = b1.hasOwnProperty('b');
    console.log('isTrue',isTrue);

    //Object.assign(target, ...sources)：将源对象的可枚举属性复制到目标对象。

    const allb = Object.assign(b1,b2);
    console.log('allB',allb);
    
    //检查对象自身是否拥有某属性，不检查原型链。
    const isOwn = b1.hasOwnProperty('b');
    console.log('isOwn',isOwn);
    
    </script>
    

</body>
</html>